package gin

import (
	"gin_v0dot2b/binding"
	"net/http"
)

// Deprecated: 直接使用binding
func (c *Context) EnsureBody(item any) bool {
	// 如果校验不通过,中断后续请求
	//if err := c.ParseBody(item); err != nil {
	//	c.Fail(400, err)
	//	return false
	//}
	//return true
	return c.Bind(item)
}

// Deprecated: 使用Bind替代
// ParseBody 将消息正文内容解析为Json输入，将json有效payload解码为指定的指针结构
func (c *Context) ParseBody(item any) error {
	return binding.JSON.Bind(c.Req, item)
	//decoder := json.NewDecoder(c.Req.Body)
	//// 尝试从请求体中读取json数据，并将它解析到item变量里
	//if err := decoder.Decode(&item); err == nil {
	//	// 校验必须字段
	//	return Validate(c, item)
	//} else {
	//	return err
	//}
}

// Deprecated: 使用 gin.Static 代替
// ServeFiles 用于从执行的文件系统根目录提供文件服务
// path 必须以/*filepath结尾
// 如/static/*filepath 这样文件将从本地路径/static/*filepath提供文件服务
// 这里的/static 就是root参数所指定的根目录
// 示例:router.ServeFiles("/src/*filepath", http.Dir("/var/www"))
// 此示例表明当客户端请求以"/src/"开头的路径时,服务器会从"/var/www"目录中查找对应的文件
func (engine *Engine) ServeFiles(path string, root http.FileSystem) {
	engine.router.ServeFiles(path, root)
}
